package com.google.fbyoutube.client;

import java.util.List;
import java.util.Map;

import com.google.fbyoutube.shared.ytComment;
import com.google.fbyoutube.shared.ytVideoEntry;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("youtubeService")
public interface YouTubeAppService extends RemoteService {
	
	List<ytVideoEntry> getTopRateVideos(String cat, Map<String, String> options);
	
	List<ytVideoEntry> getMostPopularVideos(String cat, Map<String, String> options);
	
	List<ytVideoEntry> getMostViewedVideos(String cat, Map<String, String> options);
	
	List<ytVideoEntry> getTopFavoriteVideos(Map<String, String> options);
	
	List<ytVideoEntry> getRecommendationVideos();
	
	List<ytVideoEntry> searchVideos(Map<String, String> options);
	
	List<ytVideoEntry> getYTFavoriteVideos();
	
	List<ytVideoEntry> getYTUploadVideos(String username);
	
	List<ytVideoEntry> getRelatedVideos(String vodId);
	
	List<ytVideoEntry> getVideos(String feedurl);
	
	List<ytComment> getTextComment(String vodId);
	
	ytVideoEntry getVideoById(String vodId);
	
	boolean addYTFavoriteVideo(String vodId);
	
	boolean deleteYTFavoriteVideo(String vodId);
}
